home *** CD-ROM | disk | FTP | other *** search
/ ftp.uv.es / 2014.11.ftp.uv.es.tar / ftp.uv.es / pub / mirror / MailDrop / plug-ins / SamplePlugInProjects.hqx / Sample Plug-in Projects / Current Bear ID / Current Bear ID.c next >
C/C++ Source or Header  |  1997-01-08  |  2KB  |  103 lines

  1. #include <SetupA4.h>
  2. #include <A4Stuff.h>
  3.  
  4. #include "Mail Drop PlugIns.h"
  5.  
  6. #include <string.h>
  7.  
  8. void GetPreferencesFolder(short *vRefNumP, long *dirIDP);
  9.  
  10. pascal OSErr main(short selector, MailDropPlugInPBPtr plugInPBPtr, void *plugInData)
  11. {
  12.     MailDropDefaultParam    *pb;
  13.  
  14.     long     oldA4;
  15.     OSErr    err;
  16.     short    refNum;
  17.     short    vRefNum;
  18.     long    dirID;
  19.     FSSpec    spec;
  20.     Handle    strHandle;
  21.  
  22.     pb = (MailDropDefaultParam *)plugInPBPtr;
  23.  
  24.     if (pb == nil) return errNullParamBlock;
  25.     if (pb->type != 'Dflt') return errWrongPlugInType;
  26.  
  27.     oldA4 = SetCurrentA4();
  28.     RememberA4();
  29.  
  30.     err = noErr;
  31.  
  32.     switch (selector) {
  33.  
  34.     case selectorPrepare:
  35.     case selectorFinish:
  36.         break;
  37.  
  38.     case selectorDefaultGetInfo:
  39.  
  40.         GetPreferencesFolder(&vRefNum, &dirID);
  41.         err = FSMakeFSSpec(vRefNum, dirID, "\pCurrent Bear ID", &spec);
  42.         if (err != noErr) break;
  43.  
  44.         refNum = FSpOpenResFile(&spec, fsRdPerm);
  45.         if ((refNum == -1) || (ResError() != noErr)) {
  46.             err = ResError();
  47.             break;
  48.             if (err != noErr) break;
  49.         }
  50.  
  51.         strHandle = Get1Resource('STR ', 128);
  52.         if (strHandle != nil) {
  53.             if (GetHandleSize(strHandle) < 80) {
  54.                 BlockMoveData(*strHandle, pb->Username, GetHandleSize(strHandle));
  55.                 p2cstr((StringPtr)pb->Username);
  56.             }
  57.             ReleaseResource(strHandle);
  58.         }
  59.  
  60. //        These next two aren't really supported by this plug-in because the information
  61. //        isn't in the "Current Bear ID" file.
  62.  
  63. /*
  64.         strHandle = Get1Resource('STR ', 129);
  65.         if (strHandle != nil) {
  66.             if (GetHandleSize(strHandle) < 80) {
  67.                 BlockMoveData(*strHandle, pb->Password, GetHandleSize(strHandle));
  68.                 p2cstr((StringPtr)pb->Password);
  69.             }
  70.             ReleaseResource(strHandle);
  71.         }
  72.  
  73.         strHandle = Get1Resource('STR ', 130);
  74.         if (strHandle != nil) {
  75.             if (GetHandleSize(strHandle) < 256) {
  76.                 BlockMoveData(*strHandle, pb->IMAPServer, GetHandleSize(strHandle));
  77.                 p2cstr((StringPtr)pb->IMAPServer);
  78.             }
  79.             ReleaseResource(strHandle);
  80.         }
  81. */
  82.  
  83.         CloseResFile(refNum);
  84.         break;
  85.  
  86.     default:
  87.         err = errInvalidSelector;
  88.         break;
  89.     }
  90.  
  91.     SetA4(oldA4);
  92.  
  93.     return err;
  94. }
  95.  
  96. void GetPreferencesFolder(short *vRefNumP, long *dirIDP)
  97. {
  98.     if (FindFolder(kOnSystemDisk, kPreferencesFolderType, kDontCreateFolder, vRefNumP, dirIDP) != noErr) {
  99.         *vRefNumP = 0;
  100.         *dirIDP = 0;
  101.     }
  102. }
  103.